package controlador;

import vista.paneles.MapPanel;
import modelo.Model;
import modelo.individuos.AgentAttributes;
import modelo.individuos.IndividualProfile;

public class Controlador {

	private Model modelo;
	
	public Controlador(Model model) {
		
		modelo = model;
	}

	public Model getModelo() {
		
		return modelo;
	}	
	
	public MapPanel getMapPanel() {
		return modelo.getMapaPanel();
	}
	
	public void setMapa(MapPanel mapa) {
		modelo.setMapaPanel(mapa);
	}
	
	public void setModelo(Model model) {
		
		modelo = model;
	}
	
	public void buildImage() {
	
		modelo.buildImage();
	}
	
	public void getData() {
	
		modelo.configureModelMap();
		modelo.getOpenStreetMapInfo();
		modelo.buildRoadsDrivers();
	}
	
	public void startSimulation() {
		
		modelo.startSimulation();
	}
	
	public void borrarDatos() {
		
		modelo.borrarDatos();
	}

	public void configurarAgentes(Integer tipoParticipantes, Integer numParticipantes, 
			IndividualProfile perfil,Integer accion) {
		
		modelo.configurarAgentes(tipoParticipantes,numParticipantes,perfil,accion);
	}
	
	public void generarAgentes() {
		
		modelo.generarAgentes();
	}

	public void eliminarTipo(Integer posicion) {
	
		modelo.eliminarTipo(posicion);
	}
	
	public void limpiarListaTipos() {
		
		modelo.limpiarListaTipos();
	}

	public void actualizarTabla() {
		
		modelo.actualizarTabla();
	}
	
	public void actualizarSinContenido(Integer valor) {
		
		modelo.actualizarSinContenido(valor);
	}

	public AgentAttributes consultarElemento(Integer posicion) {
	
		return modelo.consultarElemento(posicion);
	}

	public void actualizarAgentes(IndividualProfile info, Integer posicion) {
		
		modelo.actualizarAgentes(info,posicion);
	}

	public void setPararSimulacion(Boolean detener) {
		
		modelo.setPararSimulacion(detener);
	}

	public void obtenerEstadisticas() {
	
		modelo.getEstadistics();
	}

	public void configurarEntorno(Integer tipoEntorno, Integer condiciones) {
	
		modelo.configurarEntorno(tipoEntorno,condiciones);
	}

	public void setSimulationSpeed(int value) {
		
		modelo.setSimulationSpeed(value);
	}

	public void resetSpeedSimulation() {
		
		modelo.resetSpeedSimulation();
	}
}
